<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="jX-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1、JS是什么
        javascript是一种属于网络的脚本语言，广泛应用于web应用开发，常用来为网页添加各式各样的动态功能，为用户提供更流畅美观的浏览效果
       
        // 2、js一共有多少种数据类型?
        有基础数据和复杂数据两大类类型，基础数据类型分别为Number数字类型、String字符串类型、Boolean布尔类型、Undefined类型和null类型
       
        // 3、js检测数据类型有哪些方法?
        var a = "dsdfs";
        var rest = typeof a;
        console.log(rest);

        var a = "dsdfs";
        var rest = typeof(a);
        console.log(rest);
        console.log(Object.prototype.toString.call(rest).slice(8,-1));

        // 4、undefined和null的区别?	用typeof检测它们分别返回什么值?
        undefined:定义一个变量，有一个值，但不赋值，var a;var rest = typeof a;console.log(rest);显示为undiefined
        null:定义一个变量，有一个值并且赋值为null才为null。例：var a = null;var rest1 = typeof a;console.log(rest1);显示为null

        // 5、写出下列数据转Boolean对应的结果
        var str = "0";
        console.log(Boolean(str));//ture

        var str1 = "";
        console.log(Boolean(str1));//false

        var str2 = " ";
        console.log(Boolean(str2));//true

        var unde = undefined;
        console.log(Boolean(unde));//false

        var nu = null;
        console.log(Boolean(nu));//false

        var num = 0;
        console.log(Boolean(num));//fasle

        var num1 = -10;
        console.log(num1);//true

        // 6、检测下面的变量各自的数据类型
        var str = "";//false
        console.log(Object.prototype.toString.call(str).slice(8,-1));
        
        var num = "-10";//-10的string
        console.log(Object.prototype.toString.call(num).slice(8,-1));

        var num1 = 0;//0的number
        console.log(Object.prototype.toString.call(num1).slice(8,-1));

        var nu = undefined;//undefined
        console.log(Object.prototype.toString.call(nu).slice(8,-1));

        var nu1 = "undefined";//undefined的string
        console.log(Object.prototype.toString.call(nu1).slice(8,-1));

        var nu1 = "null";//null的string
        console.log(Object.prototype.toString.call(nu1).slice(8,-1));

        var nu2 = null;//object或null
        console.log(Object.prototype.toString.call(nu2).slice(8,-1));

        var obj = "{}";//{}的string
        console.log(Object.prototype.toString.call(obj).slice(8,-1));


        var obj1 = {};//object
        console.log(Object.prototype.toString.call(obj1).slice(8,-1));

        var sy = Sybmol("n");
        console.log(Object.prototype.toString.call(sy).slice(8,-1));

        //7、JS的注释写法有哪几种，有何区别
        1. 单行注释
            作用：对一行代码进行解释说明。快捷键：ctrl + /
            ```js
                // 定义a变量
                var a = "dsdfs";
                var rest = typeof(a);
                console.log(rest);
            ```
        2. 多行注释
            作用：解释说明多行代码 。快捷键：alt + shift + a
            ```js
            /*  var f=999;
                var rest6 =typeof(typeof(f));
                console.log(rest6); */
            ```

        //8、javascript引入页面有几种形式
        内嵌式引入<script>alert('一段文字')</script>
        
        内联式引入：a标签--<a href="javascript:alret('点击弹出')">点击</a>
        <div onclick="alret('一段文字哦')"></div>

        外链引入：创建一个js文件，后缀名为.js文件，js文件里面不需要书写script标签，直接在里面写格式，然后在html以script的src引入。例：<script src="index.js"></script>
        
        //9、var 的意义何在
        var定义变量的关键字，告诉浏览器，我下面的操作是在定义变量

        //10、已知数A与B，由键盘输入AB的值，交换它们的值，并输出。
      //提示，获取用户输入信息，可以使用 var user_input = prompt("请输入数字");
      <script>
        var a = prompt("请输入数字A");
        var b = prompt("请输入数字B");
        // var tmp = a;
        // a = b;
        // b = tmp;
        [a,b] = [b,a]
        alert(["A:" + a,"B:" + b]);
        alert([a,b]);
        console.log(a,b);
      </script>
    </script>
</body>

</html>